1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.signals; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.purple.value; 34 import std.c.stdarg; 35 36 extern (C): 37 38 alias void function () PurpleCallback; 39 alias void function (void function (), va_list, void*, void**) PurpleSignalMarshalFunc; 40 41 42 version(Derelict_Link_Static) 43 { 44 extern( C ) nothrow 45 { 46 gulong purple_signal_register(void* instance, const(char)* signal, PurpleSignalMarshalFunc marshal, PurpleValue* ret_value, int num_values, ...); 47 void purple_signal_unregister(void* instance, const(char)* signal); 48 void purple_signals_unregister_by_instance(void* instance); 49 void purple_signal_get_values(void* instance, const(char)* signal, PurpleValue** ret_value, int* num_values, PurpleValue*** values); 50 gulong purple_signal_connect_priority(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data, int priority); 51 gulong purple_signal_connect(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data); 52 gulong purple_signal_connect_priority_vargs(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data, int priority); 53 gulong purple_signal_connect_vargs(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data); 54 void purple_signal_disconnect(void* instance, const(char)* signal, void* handle, PurpleCallback func); 55 void purple_signals_disconnect_by_handle(void* handle); 56 void purple_signal_emit(void* instance, const(char)* signal, ...); 57 void purple_signal_emit_vargs(void* instance, const(char)* signal, va_list args); 58 void* purple_signal_emit_return_1(void* instance, const(char)* signal, ...); 59 void* purple_signal_emit_vargs_return_1(void* instance, const(char)* signal, va_list args); 60 void purple_signals_init(); 61 void purple_signals_uninit(); 62 void purple_marshal_VOID(PurpleCallback cb, va_list args, void* data, void** return_val); 63 void purple_marshal_VOID__INT(PurpleCallback cb, va_list args, void* data, void** return_val); 64 void purple_marshal_VOID__INT_INT(PurpleCallback cb, va_list args, void* data, void** return_val); 65 void purple_marshal_VOID__POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 66 void purple_marshal_VOID__POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 67 void purple_marshal_VOID__POINTER_INT_INT(PurpleCallback cb, va_list args, void* data, void** return_val); 68 void purple_marshal_VOID__POINTER_INT_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 69 void purple_marshal_VOID__POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 70 void purple_marshal_VOID__POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 71 void purple_marshal_VOID__POINTER_POINTER_UINT_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 72 void purple_marshal_VOID__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 73 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 74 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 75 void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 76 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 77 void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 78 void purple_marshal_INT__INT(PurpleCallback cb, va_list args, void* data, void** return_val); 79 void purple_marshal_INT__INT_INT(PurpleCallback cb, va_list args, void* data, void** return_val); 80 void purple_marshal_INT__POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 81 void purple_marshal_INT__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 82 void purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 83 void purple_marshal_BOOLEAN__POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 84 void purple_marshal_BOOLEAN__POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 85 void purple_marshal_BOOLEAN__POINTER_BOOLEAN(PurpleCallback cb, va_list args, void* data, void** return_val); 86 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 87 void purple_marshal_BOOLEAN__POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 88 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 89 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 90 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 91 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT(PurpleCallback cb, va_list args, void* data, void** return_val); 92 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 93 void purple_marshal_BOOLEAN__INT_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 94 void purple_marshal_POINTER__POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 95 void purple_marshal_POINTER__POINTER_INT(PurpleCallback cb, va_list args, void* data, void** return_val); 96 void purple_marshal_POINTER__POINTER_INT64(PurpleCallback cb, va_list args, void* data, void** return_val); 97 void purple_marshal_POINTER__POINTER_INT_BOOLEAN(PurpleCallback cb, va_list args, void* data, void** return_val); 98 void purple_marshal_POINTER__POINTER_INT64_BOOLEAN(PurpleCallback cb, va_list args, void* data, void** return_val); 99 void purple_marshal_POINTER__POINTER_POINTER(PurpleCallback cb, va_list args, void* data, void** return_val); 100 } 101 } 102 else 103 { 104 extern( C ) nothrow 105 { 106 alias da_purple_signal_register = gulong function(void* instance, const(char)* signal, PurpleSignalMarshalFunc marshal, PurpleValue* ret_value, int num_values, ...); 107 alias da_purple_signal_unregister = void function(void* instance, const(char)* signal); 108 alias da_purple_signals_unregister_by_instance = void function(void* instance); 109 alias da_purple_signal_get_values = void function(void* instance, const(char)* signal, PurpleValue** ret_value, int* num_values, PurpleValue*** values); 110 alias da_purple_signal_connect_priority = gulong function(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data, int priority); 111 alias da_purple_signal_connect = gulong function(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data); 112 alias da_purple_signal_connect_priority_vargs = gulong function(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data, int priority); 113 alias da_purple_signal_connect_vargs = gulong function(void* instance, const(char)* signal, void* handle, PurpleCallback func, void* data); 114 alias da_purple_signal_disconnect = void function(void* instance, const(char)* signal, void* handle, PurpleCallback func); 115 alias da_purple_signals_disconnect_by_handle = void function(void* handle); 116 alias da_purple_signal_emit = void function(void* instance, const(char)* signal, ...); 117 alias da_purple_signal_emit_vargs = void function(void* instance, const(char)* signal, va_list args); 118 alias da_purple_signal_emit_return_1 = void* function(void* instance, const(char)* signal, ...); 119 alias da_purple_signal_emit_vargs_return_1 = void* function(void* instance, const(char)* signal, va_list args); 120 alias da_purple_signals_init = void function(); 121 alias da_purple_signals_uninit = void function(); 122 alias da_purple_marshal_VOID = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 123 alias da_purple_marshal_VOID__INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 124 alias da_purple_marshal_VOID__INT_INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 125 alias da_purple_marshal_VOID__POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 126 alias da_purple_marshal_VOID__POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 127 alias da_purple_marshal_VOID__POINTER_INT_INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 128 alias da_purple_marshal_VOID__POINTER_INT_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 129 alias da_purple_marshal_VOID__POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 130 alias da_purple_marshal_VOID__POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 131 alias da_purple_marshal_VOID__POINTER_POINTER_UINT_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 132 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 133 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 134 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 135 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 136 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 137 alias da_purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 138 alias da_purple_marshal_INT__INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 139 alias da_purple_marshal_INT__INT_INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 140 alias da_purple_marshal_INT__POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 141 alias da_purple_marshal_INT__POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 142 alias da_purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 143 alias da_purple_marshal_BOOLEAN__POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 144 alias da_purple_marshal_BOOLEAN__POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 145 alias da_purple_marshal_BOOLEAN__POINTER_BOOLEAN = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 146 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 147 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 148 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 149 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 150 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 151 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 152 alias da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 153 alias da_purple_marshal_BOOLEAN__INT_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 154 alias da_purple_marshal_POINTER__POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 155 alias da_purple_marshal_POINTER__POINTER_INT = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 156 alias da_purple_marshal_POINTER__POINTER_INT64 = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 157 alias da_purple_marshal_POINTER__POINTER_INT_BOOLEAN = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 158 alias da_purple_marshal_POINTER__POINTER_INT64_BOOLEAN = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 159 alias da_purple_marshal_POINTER__POINTER_POINTER = void function(PurpleCallback cb, va_list args, void* data, void** return_val); 160 } 161 162 __gshared 163 { 164 da_purple_signal_register purple_signal_register; 165 da_purple_signal_unregister purple_signal_unregister; 166 da_purple_signals_unregister_by_instance purple_signals_unregister_by_instance; 167 da_purple_signal_get_values purple_signal_get_values; 168 da_purple_signal_connect_priority purple_signal_connect_priority; 169 da_purple_signal_connect purple_signal_connect; 170 da_purple_signal_connect_priority_vargs purple_signal_connect_priority_vargs; 171 da_purple_signal_connect_vargs purple_signal_connect_vargs; 172 da_purple_signal_disconnect purple_signal_disconnect; 173 da_purple_signals_disconnect_by_handle purple_signals_disconnect_by_handle; 174 da_purple_signal_emit purple_signal_emit; 175 da_purple_signal_emit_vargs purple_signal_emit_vargs; 176 da_purple_signal_emit_return_1 purple_signal_emit_return_1; 177 da_purple_signal_emit_vargs_return_1 purple_signal_emit_vargs_return_1; 178 da_purple_signals_init purple_signals_init; 179 da_purple_signals_uninit purple_signals_uninit; 180 da_purple_marshal_VOID purple_marshal_VOID; 181 da_purple_marshal_VOID__INT purple_marshal_VOID__INT; 182 da_purple_marshal_VOID__INT_INT purple_marshal_VOID__INT_INT; 183 da_purple_marshal_VOID__POINTER purple_marshal_VOID__POINTER; 184 da_purple_marshal_VOID__POINTER_UINT purple_marshal_VOID__POINTER_UINT; 185 da_purple_marshal_VOID__POINTER_INT_INT purple_marshal_VOID__POINTER_INT_INT; 186 da_purple_marshal_VOID__POINTER_INT_POINTER purple_marshal_VOID__POINTER_INT_POINTER; 187 da_purple_marshal_VOID__POINTER_POINTER purple_marshal_VOID__POINTER_POINTER; 188 da_purple_marshal_VOID__POINTER_POINTER_UINT purple_marshal_VOID__POINTER_POINTER_UINT; 189 da_purple_marshal_VOID__POINTER_POINTER_UINT_UINT purple_marshal_VOID__POINTER_POINTER_UINT_UINT; 190 da_purple_marshal_VOID__POINTER_POINTER_POINTER purple_marshal_VOID__POINTER_POINTER_POINTER; 191 da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER; 192 da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER; 193 da_purple_marshal_VOID__POINTER_POINTER_POINTER_UINT purple_marshal_VOID__POINTER_POINTER_POINTER_UINT; 194 da_purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT; 195 da_purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT; 196 da_purple_marshal_INT__INT purple_marshal_INT__INT; 197 da_purple_marshal_INT__INT_INT purple_marshal_INT__INT_INT; 198 da_purple_marshal_INT__POINTER_POINTER purple_marshal_INT__POINTER_POINTER; 199 da_purple_marshal_INT__POINTER_POINTER_POINTER purple_marshal_INT__POINTER_POINTER_POINTER; 200 da_purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER; 201 da_purple_marshal_BOOLEAN__POINTER purple_marshal_BOOLEAN__POINTER; 202 da_purple_marshal_BOOLEAN__POINTER_POINTER purple_marshal_BOOLEAN__POINTER_POINTER; 203 da_purple_marshal_BOOLEAN__POINTER_BOOLEAN purple_marshal_BOOLEAN__POINTER_BOOLEAN; 204 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER purple_marshal_BOOLEAN__POINTER_POINTER_POINTER; 205 da_purple_marshal_BOOLEAN__POINTER_POINTER_UINT purple_marshal_BOOLEAN__POINTER_POINTER_UINT; 206 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT; 207 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER; 208 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER; 209 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT; 210 da_purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER; 211 da_purple_marshal_BOOLEAN__INT_POINTER purple_marshal_BOOLEAN__INT_POINTER; 212 da_purple_marshal_POINTER__POINTER purple_marshal_POINTER__POINTER; 213 da_purple_marshal_POINTER__POINTER_INT purple_marshal_POINTER__POINTER_INT; 214 da_purple_marshal_POINTER__POINTER_INT64 purple_marshal_POINTER__POINTER_INT64; 215 da_purple_marshal_POINTER__POINTER_INT_BOOLEAN purple_marshal_POINTER__POINTER_INT_BOOLEAN; 216 da_purple_marshal_POINTER__POINTER_INT64_BOOLEAN purple_marshal_POINTER__POINTER_INT64_BOOLEAN; 217 da_purple_marshal_POINTER__POINTER_POINTER purple_marshal_POINTER__POINTER_POINTER; 218 } 219 }